/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package ClassesListas;

import ClassesUnicas.Jogo;
import DAO.DAOJogo;
import DAO.MySQL.DAOJogoMySQL;
import java.util.ArrayList;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 * Jogos
 *
 * Versao 1.0
 *
 * Data Criação 02/08/2014
 *
 * @author Igor
 */
public class Jogos {
    //Atributos
    private ArrayList<Jogo> jogos;
    private DAOJogo jogoDAO;
    
    //Construtores
    public Jogos(){
        this.jogos = new ArrayList<Jogo>();
        this.jogoDAO = new DAOJogoMySQL();
    }

    //Getters e Setters
    /**
     * @return the jogos
     */
    public ArrayList<Jogo> getJogos() {
        return jogos;
    }

    /**
     * @param jogos the jogos to set
     */
    public void setJogos(ArrayList<Jogo> jogos) {
        this.jogos = jogos;
    }

    /**
     * @return the jogoDAO
     */
    public DAOJogo getJogoDAO() {
        return jogoDAO;
    }

    /**
     * @param jogoDAO the jogoDAO to set
     */
    public void setJogoDAO(DAOJogo jogoDAO) {
        this.jogoDAO = jogoDAO;
    }
    
    //Outros metodos
    public Jogo buscaJogo(long idJogo){
        for(int i = 0;i < jogos.size();i++){
            if(idJogo == jogos.get(i).getIdJogo()){
                return jogos.get(i);
            }
        }
        return null;
    }
    
    /**
     * Lista, o ArrayList de pessoas, na tabela passada como parametro
     *
     * @param tabela
     */
    public void listarJogos(JTable tabela) {
        DefaultTableModel dtm = (DefaultTableModel) tabela.getModel();
        int i = 0;

        /*while (dtm.getRowCount() != 0) {
         dtm.removeRow(0);
         }*/
        String[] colunas = new String[]{"Código", "BL", "Fase", "Data"};

        dtm = new DefaultTableModel(colunas, 0) {
            public boolean isCellEditable(int row, int col) {
                if (col >= 0 && col <= 7) {
                    return false;
                } else {
                    return true;
                }
            }
            
            public Class getColumnClass(int c) {
                switch (c) {
                    case 1:
                        return Boolean.class;
                    default:
                        return String.class;
                }
            }
        };

        tabela.setModel(dtm);

        tabela.getColumnModel().getColumn(0).setPreferredWidth(20);
        tabela.getColumnModel().getColumn(1).setPreferredWidth(10);
        tabela.getColumnModel().getColumn(2).setPreferredWidth(20);
        tabela.getColumnModel().getColumn(3).setPreferredWidth(100);

        i = 0;
        while (i < jogos.size()) {
            String idJogo = Long.toString(jogos.get(i).getIdJogo());
            String faseSubFase = jogos.get(i).getIdFase()+"."+jogos.get(i).getIdSubFase();
            String dataInicio = jogos.get(i).getDataInicio();
            boolean baseline = jogos.get(i).isBaseline();

            dtm.addRow(new Object[]{idJogo, baseline, faseSubFase, dataInicio});   // um "" para cada coluna
            i++;
        }
        dtm.getRowCount();
    }
}
